/**
 * Copyright (C), 2015-2018, XXX有限公司
 * FileName: DynamicDataSource
 * Author:   zhouheng
 * Date:     2018/6/21 9:02
 * Description: 动态数据源切换
 * History:
 * <author>          <time>          <version>          <desc>
 * 作者姓名           修改时间           版本号              描述
 */
package com.hengby.hengcrud.config.mutidatasource;

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

/**
 * 〈一句话功能简述〉<br> 
 * 〈动态数据源切换〉
 *
 * @author zhouheng
 * @create 2018/6/21
 * @since 1.0.0
 */
public class DynamicDataSource extends AbstractRoutingDataSource {

    /*
     * 代码中的determineCurrentLookupKey方法取得一个字符串，
     * 该字符串将与配置文件中的相应字符串进行匹配以定位数据源，配置文件，即applicationContext.xml文件中需要要如下代码：(non-Javadoc)
     * @see org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource#determineCurrentLookupKey()
     */
    @Override
    protected Object determineCurrentLookupKey() {
        /*
         * DynamicDataSourceContextHolder代码中使用setDataSourceType
         * 设置当前的数据源，在路由类中使用getDataSourceType进行获取，
         *  交给AbstractRoutingDataSource进行注入使用。
         */
        return DataSourceContextHolder.getDataSourceType();

    }

}